package com.start.pay.core.interfaces;

import com.start.pay.core.entity.StartPlatformPlayConfig;

import java.util.List;

public interface StartBasePayPlatform<T extends StartPlatformPlayConfig, PS> extends StartBasePlatformPayOrder {

    String getPlatformType();
    String getPlatformTypeLabel();

    boolean hasAppId(String appId);

    boolean addPlayConfig(T config);

    boolean removeByAppId(String appId);

    /**
     * 获取平台服务
     *
     * @param appId
     * @return
     */
    PS getPlatformServiceByAppId(String appId);

    boolean updateByAppId(T config);

    List<T> allConfig();

    Class<T> getConfigClazz();



    /**
     * 支付通知回调地址
     *
     * @return
     */
    default String notifyUrl(String appId) {
        return null;
    }

    /**
     * 退款回调通知地址
     *
     * @return
     */
    default String notifyRefundUrl(String appId) {
        return null;
    }

}
